#define _GNU_SOURCE  // 声明可以使用一些扩展语法 
#include <pthread.h>
#include <stdio.h>
#include <unistd.h>

void *first_thread_fun(void *arg)
{
    printf("first线程(%d)执行 \n", gettid());

    return NULL;
}

void *second_thread_fun(void *arg)
{
    printf("second线程(%d)执行 \n", gettid());

    return NULL;
}

int main(int argc, char const *argv[])
{
    printf("主线程开始执行(%d) \n", gettid());

    // 创建2个子线程
    pthread_t pt1,pt2;
    pthread_create(&pt1, NULL, first_thread_fun, NULL);
    pthread_create(&pt2, NULL, second_thread_fun, NULL);
    printf("主线程又继续执行(%d) pt1=%ld, pt2=%ld\n", gettid(), pt1, pt2);
    // 等待子线程执行完
    pthread_join(pt1, NULL);
    pthread_join(pt2, NULL);
    printf("主线程(%d)执行结束 \n", gettid());
    return 0;
}
